module Singly
  class Auth

    def merge(params)
      params ||= {}
      Singly::Auth::Merge.new(params)
    end

    def thirtysevensignals
      oauth2_service("37signals")
    end

    def bodymedia
      oauth2_service(__method__)
    end

    def dropbox
      oauth2_service(__method__)
    end

    def dwolla
      oauth2_service(__method__)
    end

    def facebook
      oauth2_service(__method__)
    end

    def fitbit
      oauth2_service(__method__)
    end

    def foursquare
      oauth2_service(__method__)
    end

    def gcal
      oauth2_service(__method__)
    end

    def gcontacts
      oauth2_service(__method__)
    end

    def gdocs
      oauth2_service(__method__)
    end

    def github
      oauth2_service(__method__)
    end

    def gmail
      oauth2_service(__method__)
    end

    def google
      oauth2_service(__method__)
    end

    def gplus
      oauth2_service(__method__)
    end

    def imgur
      oauth2_service(__method__)
    end

    def instagram
      oauth2_service(__method__)
    end

    def klout
      oauth2_service(__method__)
    end

    def linkedin
      oauth2_service(__method__)
    end

    def meetup
      oauth2_service(__method__)
    end

    def paypal
      oauth2_service(__method__)
    end

    def picasa
      oauth2_service(__method__)
    end

    def rdio
      oauth2_service(__method__)
    end

    def reddit
      oauth2_service(__method__)
    end

    def runkeeper
      oauth2_service(__method__)
    end

    def shutterfly
      oauth2_service(__method__)
    end

    def soundcloud
      oauth2_service(__method__)
    end

    def stocktwits
      oauth2_service(__method__)
    end

    def tout
      oauth2_service(__method__)
    end

    def withings
      oauth2_service(__method__)
    end

    def wordpress
      oauth2_service(__method__)
    end

    def yammer
      oauth2_service(__method__)
    end

    def youtube
      oauth2_service(__method__)
    end

    def zeo
      oauth2_service(__method__)
    end

    def flickr
      oauth1_service(__method__)
    end

    def tumblr
      oauth1_service(__method__)
    end

    def twitter
      oauth1_service(__method__)
    end

    private

    def oauth1_service(service)
      Singly::Auth::Service.new(service, true)
    end

    def oauth2_service(service)
      Singly::Auth::Service.new(service)
    end
  end
end